﻿Public Class frmGestionSolicitudPrestamo
    Dim fechade As Date
    Dim utilidades As New Utilidades
    Dim _formPrincipal As frmPrincipal
    Dim idUsuarioLogueado As Long = 2 'Cuando se desarrolle el modulo de logueo lo levantamos dinamicamente, por ahora lo ponemos por defecto

    Public Sub New(ByRef form As frmPrincipal)

        Me.InitializeComponent()
        _formPrincipal = form
        idUsuarioLogueado = Convert.ToInt32(form.idUsuarioLogueado)

    End Sub

    Private Sub cmdSalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSalir.Click
        Me.Close()
    End Sub

    Private Sub frmGestionSolicitudPrestamo_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        utilidades.confirmarSalirDelFormulario(e)
    End Sub

    Private Sub frmGestionSolicitudPrestamo_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim myAccesoDatos As New AccesoDatos

        'Cargo Combo de Tipo de Documento
        myAccesoDatos.traer_valores_combo(Me.cmbTipoDocumento, Constantes.Tabla_TIPOS_DOCUMENTOS)

        'Cargo Combo de Estados de Solicitudes de Préstamo
        myAccesoDatos.traer_valores_combo(Me.cmbEstadoSolicitud, Constantes.Tabla_ESTADOS_SOLICITUDES_PRESTAMOS)

        'Ejecuto una Búsqueda sin Filtros para llenar la Grilla
        Me.buscar("")

    End Sub

    Private Sub cmdBuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdBuscar.Click
        Dim where As New String("")

        If utilidades.validarRangoDeFechas(txtFechaDesde, txtFechaHasta) = False Then
            Exit Sub
        End If

        Me.buscar(armarWhereConsulta)
    End Sub

    Private Sub cmdVer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdVer.Click
        Dim filaSeleccionada As DataGridViewRow
        Dim idSolicitud As Long
        For Each filaSeleccionada In gridSolicitudesPrestamos.SelectedRows
            idSolicitud = filaSeleccionada.Cells(0).Value
        Next

        Dim frmSolicitudPrestamo As New frmSolicitudPrestamo(Constantes.Ventana_Tipo_Apertura_Detalle, _formPrincipal)

        frmSolicitudPrestamo.idSolicitud = idSolicitud
        frmSolicitudPrestamo.ShowDialog()
    End Sub

    Private Sub cmdModificar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdModificar.Click
        Dim filaSeleccionada As DataGridViewRow
        Dim idSolicitud As Long
        For Each filaSeleccionada In gridSolicitudesPrestamos.SelectedRows
            idSolicitud = filaSeleccionada.Cells(0).Value
        Next

        Dim frmSolicitudPrestamo As New frmSolicitudPrestamo(Constantes.Ventana_Tipo_Apertura_Edicion, _formPrincipal)
        frmSolicitudPrestamo.idSolicitud = idSolicitud
        frmSolicitudPrestamo.ShowDialog()
    End Sub

    Public Sub buscar(ByVal where As String)
        Dim myAccesoDatos As New AccesoDatos
        Dim myConsulta As String

        myConsulta = _
            "SELECT S.ID AS NRO_SOLICITUD, C.ID AS NRO_CLIENTE, TD.DESCRIPCION AS TIPO_DOCUMENTO, " & _
                "C.NRO_DOCUMENTO, CONVERT(VARCHAR(10), S.FECHA_SOLICITUD, 103) AS FECHA_SOLICITUD, " & _
                "CONVERT(int, floor(S.MONTO)) AS MONTO, S.CANTIDAD_CUOTAS, CONVERT(VARCHAR(10), " & _
                "S.FECHA_VENC_PRIMER_COMPROMISO, 103) AS FECHA_PRIMER_COMPROMISO, " & _
                "ESP.DESCRIPCION AS ESTADO, (E.APELLIDO + ', ' + E.NOMBRE) AS USUARIO ," & _
                "S.ID_ESTADO AS ID_ESTADO " & _
            "FROM SOLICITUDES_PRESTAMOS S INNER JOIN CLIENTES C ON (S.ID_CLIENTE = C.ID) " & _
                "INNER JOIN TIPOS_DOCUMENTOS TD ON (C.ID_TIPO_DOCUMENTO = TD.ID) " & _
                "INNER JOIN ESTADOS_SOLICITUDES_PRESTAMOS ESP ON (S.ID_ESTADO = ESP.ID) " & _
                "INNER JOIN EMPLEADO E ON (S.ID_EMPLEADO = E.ID) " & _
            "WHERE 1 = 1 "

        If Not where.Trim = "" Then
            myConsulta = myConsulta + where
        End If

        Me.gridSolicitudesPrestamos.DataSource = myAccesoDatos.ejecutarConsulta(myConsulta)

        Me.habilitarBotonesSegunGrilla()

    End Sub

    Public Function armarWhereConsulta() As String
        Dim where As New String("")
        Dim fechaDesde = txtFechaDesde.Text().Trim()
        Dim fechaHasta = txtFechaHasta.Text().Trim()
        If Not (fechaDesde = "/  /" Or fechaHasta = "/  /") Then

            fechaDesde = utilidades.obtenerFechaFormatoSQLServer2008(fechaDesde)
            fechaHasta = utilidades.obtenerFechaFormatoSQLServer2008(fechaHasta)

            where = where + " AND S.FECHA_SOLICITUD BETWEEN '" + fechaDesde + "' AND '" + fechaHasta + "'"
        End If
        If Not (txtNumeroSolicitud.Text().Trim() = "") Then
            where = where + " AND S.ID = " + txtNumeroSolicitud.Text().Trim()
        End If
        If Not (txtMonto.Text().Trim() = "") Then
            where = where + " AND S.MONTO = " + txtMonto.Text().Trim()
        End If
        If cmbEstadoSolicitud.SelectedIndex > 0 Then
            where = where + " AND S.ID_ESTADO = " + Convert.ToString(cmbEstadoSolicitud.SelectedValue)
        End If
        If cmbTipoDocumento.SelectedIndex > 0 Then
            where = where + " AND C.ID_TIPO_DOCUMENTO = " + Convert.ToString(cmbTipoDocumento.SelectedValue)
        End If
        If Not (txtNumeroDocumento.Text().Trim() = "") Then
            where = where + " AND C.NRO_DOCUMENTO = " + txtNumeroDocumento.Text().Trim()
        End If
        If Not (txtNumeroCliente.Text().Trim() = "") Then
            where = where + " AND C.ID = " + txtNumeroCliente.Text().Trim()
        End If

        Return where

    End Function


    Public Sub habilitarBotonesSegunGrilla()
        'Dependiendo si la Grilla tiene resultados habilito los botones de Detalle y de Edicion
        If Me.gridSolicitudesPrestamos.RowCount < 1 Then
            Me.cmdModificar.Enabled = False
            Me.cmdVer.Enabled = False
            Me.cmdBorrar.Enabled = False
            Me.cmdAprobar.Enabled = False
            Me.cmdOtorgar.Enabled = False
            Me.cmdDenegar.Enabled = False
            Me.cmdReport.Enabled = False
        Else
            Dim filaSeleccionada As DataGridViewRow
            Dim idEstado As Long
            For Each filaSeleccionada In gridSolicitudesPrestamos.SelectedRows
                idEstado = filaSeleccionada.Cells(10).Value
            Next

            'Solo se pueden editar, eliminar, denegar y aprobar las solicitudes pendientes
            If idEstado = Constantes.Estado_Solicitud_Prestamo_Pendiente Then
                Me.cmdModificar.Enabled = True
                Me.cmdBorrar.Enabled = True
                Me.cmdAprobar.Enabled = True
                Me.cmdDenegar.Enabled = True
            Else
                Me.cmdModificar.Enabled = False
                Me.cmdBorrar.Enabled = False
                Me.cmdAprobar.Enabled = False
                Me.cmdDenegar.Enabled = False
            End If

            'Solo se pueden otorgar las solicitudes aprobadas
            If idEstado = Constantes.Estado_Solicitud_Prestamo_Aprobada Then
                Me.cmdOtorgar.Enabled = True
            Else
                Me.cmdOtorgar.Enabled = False
            End If

            Me.cmdReport.Enabled = True
            Me.cmdVer.Enabled = True
        End If
    End Sub

    Private Sub cmdBorrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdBorrar.Click
        If MessageBox.Show("¿Está seguro que desea eliminar esta Solicitud de Préstamo?", "Importante", _
                MessageBoxButtons.OKCancel, MessageBoxIcon.Question) = Windows.Forms.DialogResult.OK Then

            Dim myAccesoDatos As New AccesoDatos
            Dim filaSeleccionada As DataGridViewRow
            Dim idSolicitud As Long
            For Each filaSeleccionada In gridSolicitudesPrestamos.SelectedRows
                idSolicitud = filaSeleccionada.Cells(0).Value
            Next
            Dim myConsulta As String
            myConsulta = "DELETE FROM SOLICITUDES_PRESTAMOS WHERE ID = " & idSolicitud
            myAccesoDatos.ejecutarConsulta(myConsulta)
            Me.buscar(armarWhereConsulta)
        End If

    End Sub

    Private Sub txtNumeroDocumento_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtNumeroDocumento.KeyPress
        utilidades.validarKeyPressNumerico(e)
    End Sub

    Private Sub txtNumeroCliente_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtNumeroCliente.KeyPress
        utilidades.validarKeyPressNumerico(e)
    End Sub

    Private Sub txtNumeroSolicitud_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtNumeroSolicitud.KeyPress
        utilidades.validarKeyPressNumerico(e)
    End Sub

    Private Sub txtMonto_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtMonto.KeyPress
        utilidades.validarKeyPressNumerico(e)
    End Sub

    Private Sub txtFechaDesde_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtFechaDesde.KeyPress
        utilidades.validarKeyPressNumerico(e)
    End Sub
    Private Sub txtFechaHasta_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtFechaHasta.KeyPress
        utilidades.validarKeyPressNumerico(e)
    End Sub

    Private Sub gridSolicitudesPrestamos_CellDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles gridSolicitudesPrestamos.CellDoubleClick
        Me.habilitarBotonesSegunGrilla()
    End Sub

    Private Sub gridSolicitudesPrestamos_CellMouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles gridSolicitudesPrestamos.CellMouseClick
        Me.habilitarBotonesSegunGrilla()
    End Sub

    Private Sub gridSolicitudesPrestamos_CellMouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles gridSolicitudesPrestamos.CellMouseDoubleClick
        Me.habilitarBotonesSegunGrilla()
    End Sub

    Private Sub gridSolicitudesPrestamos_CellMouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles gridSolicitudesPrestamos.CellMouseDown
        Me.habilitarBotonesSegunGrilla()
    End Sub

    Private Sub gridSolicitudesPrestamos_CellMouseLeave(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles gridSolicitudesPrestamos.CellMouseLeave
        Me.habilitarBotonesSegunGrilla()
    End Sub

    Private Sub gridSolicitudesPrestamos_CellMouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles gridSolicitudesPrestamos.CellMouseMove
        Me.habilitarBotonesSegunGrilla()
    End Sub

    Private Sub gridSolicitudesPrestamos_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles gridSolicitudesPrestamos.Click
        Me.habilitarBotonesSegunGrilla()
    End Sub

    Private Sub gridSolicitudesPrestamos_CurrentCellChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles gridSolicitudesPrestamos.CurrentCellChanged
        Me.habilitarBotonesSegunGrilla()
    End Sub

    Private Sub gridSolicitudesPrestamos_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles gridSolicitudesPrestamos.DoubleClick
        Me.habilitarBotonesSegunGrilla()
    End Sub

    Private Sub gridSolicitudesPrestamos_LocationChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles gridSolicitudesPrestamos.LocationChanged
        Me.habilitarBotonesSegunGrilla()
    End Sub

    Private Sub gridSolicitudesPrestamos_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles gridSolicitudesPrestamos.LostFocus
        Me.habilitarBotonesSegunGrilla()
    End Sub

    Private Sub gridSolicitudesPrestamos_MouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles gridSolicitudesPrestamos.MouseDoubleClick
        Me.habilitarBotonesSegunGrilla()
    End Sub

    Private Sub gridSolicitudesPrestamos_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles gridSolicitudesPrestamos.MouseDown
        Me.habilitarBotonesSegunGrilla()
    End Sub

    Private Sub gridSolicitudesPrestamos_RowLeave(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles gridSolicitudesPrestamos.RowLeave
        Me.habilitarBotonesSegunGrilla()
    End Sub

    Private Sub gridSolicitudesPrestamos_Sorted(ByVal sender As Object, ByVal e As System.EventArgs) Handles gridSolicitudesPrestamos.Sorted
        Me.habilitarBotonesSegunGrilla()
    End Sub

  
    Private Sub cmdAprobar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdAprobar.Click
        If MessageBox.Show("¿Está seguro que desea aprobar esta Solicitud de Préstamo?", "Importante", _
                MessageBoxButtons.OKCancel, MessageBoxIcon.Question) = Windows.Forms.DialogResult.OK Then

            Dim myAccesoDatos As New AccesoDatos
            Dim filaSeleccionada As DataGridViewRow
            Dim idSolicitud As Long
            For Each filaSeleccionada In gridSolicitudesPrestamos.SelectedRows
                idSolicitud = filaSeleccionada.Cells(0).Value
            Next
            Dim myConsulta As String
            myConsulta = "UPDATE SOLICITUDES_PRESTAMOS SET ID_ESTADO = " & Constantes.Estado_Solicitud_Prestamo_Aprobada & _
            ", ID_EMPLEADO = " & idUsuarioLogueado & _
            ", FECHA_ESTADO = '" & utilidades.obtenerFechaFormatoSQLServer2008(Format(Today, "dd/MM/yyyy")) & "'" & _
            " WHERE ID = " & idSolicitud
            myAccesoDatos.ejecutarConsulta(myConsulta)
            Me.buscar(armarWhereConsulta)
        End If
    End Sub

    Private Sub cmdOtorgar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdOtorgar.Click
        If MessageBox.Show("¿Está seguro que desea otorgar el Préstamo?", "Importante", _
        MessageBoxButtons.OKCancel, MessageBoxIcon.Question) = Windows.Forms.DialogResult.OK Then

            Dim myAccesoDatos As New AccesoDatos
            Dim filaSeleccionada As DataGridViewRow
            Dim idSolicitud As Int32
            Dim cuotas As Int32
            Dim monto As Decimal
            Dim fechaCompromiso As New String("")
            For Each filaSeleccionada In gridSolicitudesPrestamos.SelectedRows
                idSolicitud = filaSeleccionada.Cells(0).Value
                cuotas = filaSeleccionada.Cells(6).Value
                monto = Convert.ToDecimal(filaSeleccionada.Cells(5).Value)
                fechaCompromiso = filaSeleccionada.Cells(7).Value
            Next

            Dim intereses As Double

            If cuotas = 6 Then
                intereses = 1.08
            End If
            If cuotas = 9 Then
                intereses = 1.075
            End If
            If cuotas = 12 Then
                intereses = 1.07
            End If
            If cuotas = 18 Then
                intereses = 1.065
            End If
            If cuotas = 24 Then
                intereses = 1.06
            End If


            Dim myConsulta As String

            myConsulta = "INSERT INTO PRESTAMOS(ID_SOLICITUD, IVA, FECHA_OTORGAMIENTO, PAGADO, ID_EMPLEADO) VALUES ( "
            myConsulta = myConsulta & idSolicitud
            myConsulta = myConsulta & ", " & 21
            myConsulta = myConsulta & ", '" & utilidades.obtenerFechaFormatoSQLServer2008(Format(Today, "dd/MM/yyyy"))
            myConsulta = myConsulta & "', 'N'"
            myConsulta = myConsulta & ", " & idUsuarioLogueado & ")"
            myAccesoDatos.ejecutarConsulta(myConsulta)

            myConsulta = "SELECT ID FROM PRESTAMOS WHERE ID_SOLICITUD = " & idSolicitud
            Dim tabla As Data.DataTable = myAccesoDatos.ejecutarConsulta(myConsulta)
            Dim idPrestamo As String = Convert.ToString(tabla.Rows.Item(0).Item(0))

            Dim proximaFecha As New String("")
            For c As Integer = 0 To cuotas - 1
                myConsulta = "INSERT CUOTAS (ID_PRESTAMO, NRO_CUOTA, FECHA_VENCIMIENTO, MONTO, PAGADA) VALUES ( "
                myConsulta = myConsulta & idPrestamo
                myConsulta = myConsulta & ", " & c + 1
                Dim fechaVencimiento As DateTime
                If c + 1 = 1 Then
                    myConsulta = myConsulta & ", '" & utilidades.obtenerFechaFormatoSQLServer2008(fechaCompromiso)
                    fechaVencimiento = New DateTime(fechaCompromiso.Substring(6, 4), fechaCompromiso.Substring(3, 2), fechaCompromiso.Substring(0, 2))
                    proximaFecha = Format(fechaVencimiento.AddMonths(1), "dd/MM/yyyy")
                Else
                    myConsulta = myConsulta & ", '" & utilidades.obtenerFechaFormatoSQLServer2008(proximaFecha)
                    fechaVencimiento = New DateTime(proximaFecha.Substring(6, 4), proximaFecha.Substring(3, 2), proximaFecha.Substring(0, 2))
                    proximaFecha = Format(fechaVencimiento.AddMonths(1), "dd/MM/yyyy")
                End If
                myConsulta = myConsulta & "', " & Math.Round((monto / cuotas) * intereses, 2)
                myConsulta = myConsulta & ", 'N')"
                myAccesoDatos.ejecutarConsulta(myConsulta)
            Next

            myConsulta = "UPDATE SOLICITUDES_PRESTAMOS SET ID_ESTADO = " & Constantes.Estado_Solicitud_Prestamo_Otorgada & _
            ", ID_EMPLEADO = " & idUsuarioLogueado & _
            ", FECHA_ESTADO = '" & utilidades.obtenerFechaFormatoSQLServer2008(Format(Today, "dd/MM/yyyy")) & "'" & _
            " WHERE ID = " & idSolicitud
            myAccesoDatos.ejecutarConsulta(myConsulta)
            Me.buscar(armarWhereConsulta)

            Dim frmCuotasPrestamo = New frmCuotasPrestamo(idSolicitud)
            frmCuotasPrestamo.ShowDialog()
        End If
    End Sub

    Private Sub cmdDenegar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdDenegar.Click
        If MessageBox.Show("¿Está seguro que desea denegar esta Solicitud de Préstamo?", "Importante", _
            MessageBoxButtons.OKCancel, MessageBoxIcon.Question) = Windows.Forms.DialogResult.OK Then

            Dim myAccesoDatos As New AccesoDatos
            Dim filaSeleccionada As DataGridViewRow
            Dim idSolicitud As Long
            For Each filaSeleccionada In gridSolicitudesPrestamos.SelectedRows
                idSolicitud = filaSeleccionada.Cells(0).Value
            Next
            Dim myConsulta As String
            myConsulta = "UPDATE SOLICITUDES_PRESTAMOS SET ID_ESTADO = " & Constantes.Estado_Solicitud_Prestamo_Denegada & _
            ", ID_EMPLEADO = " & idUsuarioLogueado & _
            ", FECHA_ESTADO = '" & utilidades.obtenerFechaFormatoSQLServer2008(Format(Today, "dd/MM/yyyy")) & "'" & _
            " WHERE ID = " & idSolicitud
            myAccesoDatos.ejecutarConsulta(myConsulta)
            Me.buscar(armarWhereConsulta)
        End If
    End Sub

    Private Sub cmdReport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdReport.Click
        Dim report As New rptSolicitudesPrestamo
        Dim ds As New dsSolicitudes
        Dim myAccesoDatos As New AccesoDatos
        Dim myConsulta As String

        myConsulta = "SELECT S.ID AS NRO_SOLICITUD, C.ID AS NRO_CLIENTE, TD.DESCRIPCION AS TIPO_DOCUMENTO, " & _
                "C.NRO_DOCUMENTO, CONVERT(VARCHAR(10), S.FECHA_SOLICITUD, 103) AS FECHA_SOLICITUD, " & _
                "CONVERT(int, floor(S.MONTO)) AS MONTO, S.CANTIDAD_CUOTAS, CONVERT(VARCHAR(10), " & _
                "S.FECHA_VENC_PRIMER_COMPROMISO, 103) AS FECHA_PRIMER_COMPROMISO, " & _
                "ESP.DESCRIPCION AS ESTADO, (E.APELLIDO + ', ' + E.NOMBRE) AS USUARIO ," & _
                "S.ID_ESTADO AS ID_ESTADO " & _
            "FROM SOLICITUDES_PRESTAMOS S INNER JOIN CLIENTES C ON (S.ID_CLIENTE = C.ID) " & _
                "INNER JOIN TIPOS_DOCUMENTOS TD ON (C.ID_TIPO_DOCUMENTO = TD.ID) " & _
                "INNER JOIN ESTADOS_SOLICITUDES_PRESTAMOS ESP ON (S.ID_ESTADO = ESP.ID) " & _
                "INNER JOIN EMPLEADO E ON (S.ID_EMPLEADO = E.ID) " & _
            "WHERE 1 = 1 "

        Dim where As New String("")
        where = armarWhereConsulta()

        If Not where.Trim = "" Then
            myConsulta = myConsulta + where
        End If

        myAccesoDatos.ejecutarConsultaInforme(myConsulta, ds.Solicitudes)
        Dim row As Data.DataRow = ds.Datos.NewRow()
        Dim fechaDesde = txtFechaDesde.Text().Trim()
        Dim fechaHasta = txtFechaHasta.Text().Trim()
        If Not (fechaDesde = "/  /" Or fechaHasta = "/  /") Then
            row.Item("desde") = fechaDesde
            row.Item("hasta") = fechaHasta
        Else
            row.Item("desde") = " --"
            row.Item("hasta") = " --"
        End If

        ds.Datos.Rows.Add(row)

        report.SetDataSource(ds)

        Dim frmReportSolicitudesPrestamo As New frmReportSolicitudesPrestamo
        frmReportSolicitudesPrestamo.crvSolicitudes.ReportSource = report
        frmReportSolicitudesPrestamo.ShowDialog()
    End Sub

    Private Sub cmdCobrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Dim filaSeleccionada As DataGridViewRow
        Dim idSolicitud As Long
        For Each filaSeleccionada In gridSolicitudesPrestamos.SelectedRows
            idSolicitud = filaSeleccionada.Cells(0).Value
        Next

        Dim frmCobroCuota As New frmCobroCuota(idSolicitud)
        frmCobroCuota.ShowDialog()
    End Sub

End Class